turly@apple.com 1 Sep 1997: Another September?□ メAh no! the years, the years/and the rotten rose is rip'd from the wallモ
_________________
STOP PRESS ム TURLY SELLING OUT?
Sigh ム in spite of ethical qualms, because of the rather large number of hours Iユve put in on this so-called メweekend hackモ (itユs now 3am September 1), Iユm seriously thinking of going down a semi-shareware (メPintWareモ) route for future enhancements. Basically, itユs still free, but if you think itユs worth something, want to see future enhancements (including some features of a utility called PopupFolder, which many people miss ム dunno, never saw it myselfノ), etc., etc., and would like to buy me a couple of pints for my troubles, youユll be able to register it ($7, since Murphyユs stout costs $3.50 in Fibbar Mageeユs!) You will be under no obligation to register; youユre quite welcome to keep using it anyway without registering, with only a minimum of sarcastic reminders every so often :-). [I jest.] There will be no functional differences between メregisteredモ and メunregisteredモ FinderPops [hey, is it getting late or does メFinderPopsモ sound like a breakfast cereal? メJust give those tasty FinderPops a try!モ, メSugar-free FinderPopsモ, メKelloggユs FinderPopsモ. Hmmノ maybe it is getting lateノ]
The three people whoユve sent me something cool will get free registrations if I do decide to go メPintWare.モ
Note: Due to the LARGE number of hacks^H^H^H^H^H changes in this version, Iユm going to automatically expire this B4 version on Sept 30th 1997; updates will be available at the usual spot (see below.) Iユm doing this because I receive an average of five emails per day from people who are still using pre-1.3 versions! Sure God love ユem. I aim to make メPintWareモ version 1.5 available well before that date, with some relatively decent on-line help, and a rewritten manual. Well, we live in hope, anywayノ
_________________
FinderPop is a Control Panel which improves and extends the MacOS 8 Finderユs Contextual Menus. It adds various submenus to the Finderユs contextual menus, including a メProcessesモ submenu, a メWindowsモ submenu showing you the Finderユs windows, a メContentsモ submenu (allowing you to see the contents of a folder youユve selected in the Finder, a la PopupFolder), a メVolumesモ submenu showing the contents of all mounted disks, and of course the eponymous メFinderPopモ submenu, which displays everything inside a special メFinderPop Items folderモ (much like the Apple Menu displays everything inside the メApple Menu Itemsモ folder.) You can put aliases to apps, servers, folders, documents, etc., into the メFinderPop Items Folderモ, and theyユre instantly available for the price of a control-click in the Finder (or just メclicking and holdingモ for a second or two!)
The メFinderPop Items Folderモ lives in the Preferences folder, but clicking on the ヤShow メFinderPop Items Folderモノユ button in the FinderPop Control Panel will cause the Finder to display the folder window. Or just choose the メFinderPopモ menu item in the contextual menu (despite the fact that itユs a hierarchical menu, it can be メselectedモ in the usual manner.)
Unlike certain CMM plugins out there, you can be as organised or as disorganised as you like inside the メFinderPop Items Folderモ.
(although: New in 1.3b1 ム more explicit item ordering is now possible; see below.) Rather than re-invent the wheel, Iユve deliberately left out things like setting/getting file types/creators; if you need this functionality, it makes more sense to drop an alias to メSetItsTypeモ, メFile Buddyモ or メFileTyperモ into the メFinderPop Items Folderモ, and let that application look after such things ム and a lot more besides. For example: you want the ability to Stuff the Finder Selection? Add an alias to メDropStuffモ to the メFinderPop Items Folderモ, select your files in the Finder, Control-click on the last file in your selection, choose メDropStuffモ from the resulting FinderPop submenu, and Bobユs your motherユs brother.
This is all harder to describe than to do. Just put FinderPop into your Control Panels folder, reboot, place a few items in the メFinderPop Items Folderモ, and give it a try...
Some people find FinderPop useful simply for the メContentsモ, メWindows,モ メVolumesモ or メProcessesモ submenus.
But enough of my witterings. If youユre new to this, just skip straight to the メInstallationモ section below.
_________________
New: FinderPop 1.4b4 optionally adds a メVolumesモ submenu to the popup; this displays all mounted volumes, with hierarchy. メHide Othersモ works at last, as does the メFinder Windowsモ submenu ム you can now move/copy/alias the Finder selection to a completely obscured Finder window! Hurrah!
To all intents and purposes, the メVolumesモ submenus behave like the メContentsモ and メFinderPopモ submenus. メTrashingモ a volume by holding down the appropriate modifier keys (see the メFeaturesモ section below) will cause that volume to be メput away.モ
Did quite a bit on FinderPop this weekend. More next weekend (or sooner, if there are any serious bugs uncovered...)
___
New: FinderPop 1.4b3 optionally adds a Finder Windows submenu to the popup (thanks to Aaron and others who suggested this!) This is just a Windows menu for now (i.e., there are no submenus and you canユt copy or move the Finder selection in there), until I figure out how to get the disk location of Finder windows. Hey, just ユcos I work for Apple donユt mean diddly when it comes to finding out stuff like this! (Hints gratefully accepted, btw :-) Also shrunk the control panel slightly, and hopefully fixed a problem that some people were seeing where the Finder small icon showed up as a generic document icon. Oh yeah, メHide othersモ still doesnユt work, sorry.
And, err, I decided to enjoy my weekend instead of squinting at my PowerBookユs screen. I did take a brief look at trying to build the FinderPop menus メin the backgroundモ, but went to Santa Cruz instead (and have the sunburn to prove it.) Cool city, though!
___
New: FinderPop 1.4b2 apparently fixes a problem with MS WORD 5.1 (I was not able to reproduce this problem.) This version was never released, except to the person who had the problem, who says it's fixed.
___
New: FinderPop 1.4b1 fixes a problem where the Mac thinks the mouse button is still down when it isnユt. Also allow prefix ordering to work even when メDisplay Small Iconsモ is not enabled. Fix the code which opens the folder selected in the Finder if you select the "Contents" menu item. Donユt autopopup when a Finder windowユs scrollbar is being clicked. If the Finder selection contains aliases, opening them with a choice from a FinderPop menu will now open the original items, not the alias. (Unless the shift key is down.) Whew! And I swore blind that I wouldnユt touch FinderPop until next weekend. Ah well ム these fixes were easily and quickly done ム I just hope I didnユt break anything. Thanks to various people who spotted these bugs!
Oh yeah, one oddity ム if you click an icon on the desktop while some app other than the Finder is frontmost, autopopup doesnユt happen as the Finder is not immediately switched in as it is on a Control-click. Clicking on the desktop, however, will result in autopopup. Iユm investigating. Oh, and the メHide Othersモ still doesnユt work, dammit. Iユm investigating that too. Next weekend.
___
New: FinderPop 1.4b0 fixes a cosmetic icon problem, and attempts to implement the "hold down the mouse button for a second and you get the contextual popup menu". The delay is configurable in the control panel. Let me know if you've any problems...
___
New: FinderPop 1.3b3 fixes a problem with items which donユt have small colour or black-and-white icons (i.e, no 'ics8',
'ics4' or 'ics#' icons.) We now scale down the itemユs 'ICN#' icon. Not released due to absent-mindedness (Who was that Maude person, anyway?)
___
New: FinderPop 1.3b2 fixes a problem with aliases to items on disks other than the startup disk not displaying their submenus properly.
___
New: FinderPop 1.3b1 fixes a few glitches such as certain items beginning with a '-' character being transmogrified into menu dividing lines (due to an MDEF 0 oddity.) Also a number of other fixes and enhancements. FinderPop, as always, uses alphabetical ordering when adding items in folders to menus (i.e., the same ordering used by the Finder when you view by name); you can now have more control over the cosmetics of ordering by inserting an ordering prefix before the itemユs name in the Finder. This ordering prefix consists of three characters at the start of an itemユs name, of the form <digit><digit><rightparen>, i.e., '0'ノ'9','0'ノ'9',')'. This prefix will not appear in the menu. For example, my メFinderPop Items Folderモ contains the following:
01)MPW Shell
10)StuffIt Expanderェ
15)DropStuffェ
20)Utilities
Claris Emailer
CodeWarrior IDE 2.0
Control Panels
System Folder
and the FinderPop menu is ordered in exactly this way, but it doesnユt display the ordering prefixes.
It means you may have more one-time work to do setting up your ordering, but itユs eminently configurable!
Thanks to various people for the bug reports and suggestions.
The reason for the 10 day delay between 1.3b0 and this version is the fact that Iユve just moved to Cupertino to start a new project (snif, goodbye SC[pp]) ム Iユll be here sunning myself for the next couple of weeks at least. The weather sure as hell beats Cork hands down (alas, the downside is that thereユs no Beamish!) Expect slightly more regular updates from now on (well, weekly-ish anyway.)
New: FinderPop 1.3b0 is a major rewrite of the core engine. Lots of changes. Menus are now built メon-the-flyモ as you move around the hierarchy. Placed FinderPop code back in the System Heap as some people were having メCouldnユt Prepare Fragmentモ problems at startup (must look into this some more!) Removed superfluous メIcons for Contents Menuモ checkbox, you now get this if メDisplay Small Iconsモ is on. The メAre you sure you want to moveモ dialog now offers you the choice of moving, copying or making an alias of the Finder selection to your chosen folder, which is cool.
___
New: FinderPop 1.2b5 removes the メExpand Folderモ checkbox; folder expansion is now always on. You will now also get the メContentsモ submenu if you control-click an alias to a folder in the Finder.
___
New: FinderPop 1.2b4 is smaller, and finally allows you to act on all items in the Finder selection, rather than just the last one. Better icon and menu caching is done for the メContentsモ submenu. The メMove to Trashモ, メGet Infoモ and メShowモ cursors now also work for items in the メContentsモ submenu. To prevent accidents, only aliasing of the Finder selection is allowed if the target is the メFinderPop Items Folderモ (i.e., choosing the メFinderPopモ item in the contextual menu.)
___
New: FinderPop 1.2b3 adds a メcommand key cancellerモ feature -- lengthy operations (such as building the hierarchy of the メContentsモ menu of a server) can be cancelled by pressing the command key twice; the menus displayed in such circumstances will obviously be incompleteノ
FinderPop 1.2b3 also resolves alias chains (an alias to an aliasノ); I suspect this could be the cause of a number of peopleユs problems with FinderPop not showing submenus properly. However, you should really consider replacing alias chains with just one alias to the original item. (Hmmm -- sounds like a good utility idea...)
_________________
Note that FinderPop is not to be confused with MacOS 8ユs Contextual Menu Manager plug-ins: itユs not one, itユs a skanky INIT/Control Panel combo which does far too much trap patching for my sanity. Luckily, all but three of the patches are installed only during _ContextualMenuSelect time, so the impact on your system will be minimal. Famous Last Words, etc.
_________________
What's New
1.4b3 adds a "Windows" menu.
1.4b2 apparently fixes a problem some chap was having with Microsoft Word. Unreleased.
1.4b1 fixes a problem where my patch to _StillDown mysteriously returns the wrong result
on the stack (gee, thanks, CodeWarrior Pro!) Lots of other little bugfixes.
1.4b0 Implement skanky hacks to get contextual popups without pressing the control key.
Fix one or two minor possible bugs, add popup delay slider to cdev. It works
for me, anyway!
1.3b3 Fix icon problem for items which had no 'ics#', 'ics4' or 'ics8' icons. Now we
scale down the 'ICN#' icon appropriately. Not released to general public. Lucky them.
1.3b2 メFinderPopモ menu used be rebuilt on startup, but this meant that aliases to items
on volumes which weren't mounted yet didn't work properly. Now it gets rebuilt the
first time you Control-click in the Finder. Slow, but sure.
1.3b1 Divers bugfixes. Explicit ordering. No more cross-restart menu caching.
1.3b0 <Theme from Twilight Zone> Core engine rewrite!
Put FinderPop code back in SysHeap (not BufPtr.) Zap yet another cdev checkbox.
The icon caching stuff still not working right, but 99% of people wonユt notice,
so Iユll sneak this version out before the long weekend.
1.2b5 Remove some superfluous cdev checkboxes. メContentsモ submenu for folder aliases.
Fix possible crasher on INIT installation above BufPtr (flush caches.)
1.2b4 Turn off TraceBack tables since we're above BufPtr (saves 3K.) Allow opening
of more than the last item in the Finder selection (whoops!) Allow some cursors
to operate on items inside the メContentsモ submenu. Better memory usage.
1.2b3 Make #submenus be configurable (if only to ResEdit hackers.) Command-Key cancel.
Resolve alias chains.
1.2b2 Fix cosmetic problems in menu when Processes submenu is turned off.
Allocate most things above BufPtr to be more VM-friendly (TN1094).
Add new "Contents" submenu for when a folder is selected in the Finder. Wooo!
(Youユll have to explicitly turn this feature on in the Control Panel.)
1.2b1 New, faster alias-resolution code, better handling of offline aliases.
Icons/Menus are now cached between restarts, significantly reducing the
first-click delay.
Process submenu has balloon help which displays process memory usage.
1.1b1 Cursor now changes depending on what modifier keys are held down; kill,
alias, copy, info and show modifiers available. Cursors shamelessly
stolen from various sources.
Fixed nasty icon/menu cache buffer overflow which could cause crashing.
1.0.2 Never released to general public due to me leaving _DebugStrs in (sorry, Pete!)
1.0.1 No longer disable the 'Label' menu. Whoops!
Option-clicking on a process from the ヤProcessesユ menu will attempt to quit it.
_________________
Installation
FinderPop requires Mac OS 8 and the Contextual Menus extension.
To install FinderPop, just drop it into your Control Panels folder, or drop it onto the closed system folder icon and let the Finder autoroute it. After you restart, FinderPop should be installed. Clicking the メShow FinderPop Items Folderノモ button will bring the メFinderPop Items Folderモ frontmost, and allow you to add or remove items from the folder (and subsequently the "FinderPop" submenu.)
・ Some people state that FinderPop fails to load with a メCouldnユt Prepare Code Fragmentモ error. I have not ever seen a case of this, but people to whom this has happened state that by getting FinderPop to load later (e.g., by renaming it to メ~FinderPopモ or メzzzzFinderPopモ) seems to fix this problem. Are we trying to hard-link against a library that isn't loaded yet?
_________________
FreeWare
You can regard FinderPop as free. It can be included on magazine and Info-Mac CDs, etc. It may soon be メPintWareモ, where if you think itユs worth something, want to see future enhancements (including some features of a utility called PopupFolder, which many people miss ム dunno, never saw it myselfノ), etc., etc., and would like to buy me a couple of pints for my troubles, youユll be able to register it ($7, since Murphyユs stout costs $3.50 in Fibbar Mageeユs!) You will be under no obligation to register; youユre quite welcome to keep using it anyway without registering, with only a minimum of sarcastic reminders every so often :-). [I jest.]
While you're reading this, Iユll just plug my other freebie menu-related utility, Popup Navigator (available on Info-Mac, and on my naff homepage, below.) This allows you to see exactly where your open documents are located on your disks by command-clicking a document window's title. Much like the Finder, really.
NB This is not an official Apple-supported product, so donユt bug them about it, bug me, turly@apple.com.
_________________
Features and Limitiations (メbugsモ)
・ If you have a folder on your desktop whose name is the same as one of your mounted volumes, control-clicking on it results in a メContentsモ submenu which refers to the *disk*, not the folder you clicked on. This appears to be a system software bug; Iユve filed a bug report at Apple.
・ FinderPop maintains two caches: one for menus it has built up, and one for icons. If you ever need to flush these caches, simply open the control panel, turn FinderPop off and then back on again immediately. The next time you Control-click, all FinderPopユs menus will be rebuilt from scratch.
・ FinderPop checks that its menu hierarchy caches are up-to-date by looking at the folder being cachedユs modification date. Unfortunately, renaming an item in (for example) the メFinderPop Items Folderモ doesnユt affect the mod date; you can force the mod date to change by creating a new folder and then immediately deleting it (Command-N, Command-Delete.)
・ The Menu Manager will only display a maximum of 5 hierarchical menus at one time, so not all levels of a deep hierarchy can be displayed.
・ Menus are now (1.3b0) built on-the-fly one level at a time, so you may sometimes notice a pause as you navigate into a large hierarchy. Menus are still cached, however, so you should only see this happening once ム unless the folder is changing.
・ Want to speed up FinderPopユs building of a complicated menu hierarchy? Make sure the disk cache in the Memory control panel is set to some reasonable value -- for example, by clicking the メUse Defaultsモ button. 96K is not a reasonable value; my rule of thumb is to use one sixteenth of my physical memory up to a max of 2048K.
・ Depending on the folder youユve selected in the Finder, the FinderPop 1.2b2 メContentsモ submenu can cause a delay while its menu hierarchy is being built. Obviously, the larger the hierarchy, the bigger the delay. If you think things are taking too long, press the Command key twice to halt the menu hierarchy building ム youユll only get a partial menu, but at least youユve got control.
・ BUG: Copying/aliasing/moving from a tabbed folder doesnユt appear to work. (The folder appears to close before the Finder can respond to the AppleEvents FinderPop sends to it.) At first glance, this appears to be a Finder bug, but Iユm looking into it! Latest: this is indeed a Finder bug.
・ Holding down the Option Key while the Process submenu is active will display balloons which show the memory usage of a process. For some bizarre reason, you may need to depress it a few times, and move the mouse over to one edge or other of the
menu item. A low-priority fix, but Iユll get around to it.
・ Holding down the mouse button during startup will disable FinderPop.
・ Opening the FinderPop control panel, turning FinderPop off, Control-clicking, and then turning FinderPop back on will cause the FinderPop menu and icon caches to be purged, forcing them to be rebuilt the next time you Control-click in the Finder.
・ The メFinderPop Items Folderモ in the Preferences folder can itself be an alias.
・ You can now Copy/Alias the Finder selection to off-line aliases (which will be mounted.)
・ If you donユt have anything selected in the Finder, choosing a folder from the FinderPop menu simply opens that folder. Various modifier keys may be used to do different things, to wit:
Command - (Magnifying glass cursor.) Shows the chosen menu item (process
or FinderPop item) in the Finder.
Command-Option - (Information cursor.) Get Info on chosen menu item (process
or FinderPop item). If the chosen item is an alias to something, holding
down the Shift key will Get Info or Show the alias, not the original item.
Control-Command-Option-Shift - (Trashcan cursor.) Kills process, or trashes
chosen FinderPop menu item, or puts away a disk chosen from the Volumes
submenu. This is a change from the 1.0.1 option-quit method.
(Ctrl-Cmd-Opt will kill a process; there's no need to press Shift.)
If you do have something selected in the Finder and you choose a folder from a FinderPop menu, then you can use the normal Finder modifier keys to either make an alias, move, or copy the Finder selection into the chosen folder. These are:
None - moves the the Finder selection to the chosen folder.
Option - Copies the Finder selection to the chosen folder.
Command-Option - Makes an alias of the Finder selection in the chosen folder.
The cursor should change appropriately depending on the Finder selection and the menu item currently being highlighted. A メMoveモ will take place if the all items in the Finder selection are on the same volume as the chosen folder; otherwise the Finder selection will be copied. (Note that the メMoveモ cursor is different from the standard arrow just to emphasise the fact that a move will take place.) The メAsk before moving filesモ checkbox in the control panel allows you the opportunity to select whether to move, copy or alias the selection; I recommend leaving this checked.
At the very least, all these modifier keys are good piano practice!
・ FinderPop currently has no knowledge about which documents are openable by which applications, so it may be possible to ヤopenユ a document using an inappropriate application. This will also be fixed in a future version (i.e., applications which canユt open whatユs selected in the Finder will be disabled or removed from FinderPop menus.)
・ 68K support? Coming as soon as I figure out whatユs really going on down in the bowels of Finder8 and CFM68K, and as soon as I can get my hands on a 68K box for a weekend or two. Working in the Apple manufacturing plant in Ireland certainly has its advantages ム machines of all sorts were available! Here in Cupertino, my development machineユs a Powerbook, FFS. With tiny Japanese Keyboard where typing non-alphanumeric characters is an entertaining メseek ye the keyモ -style game as the key caps bear no relation to the characters they produce. And donユt get me started on the screen. Moan, grumble, gripeノ
・ Plotting colour icons in the FinderPop submenu -- things might look a tad strange in right-to-left text systems due to the skanky method I use to draw the icons for folders. As soon as I get around to locating a right-to-left MacOS 8 system, I'll do further testing. But be warned...
・ Any item inside the メFinderPop Itemsモ folder whose name ends in "-***" is considered to be a menu dividing line, following the convention set by James Walker's OtherMenu INIT. Extending that convention somewhat, any folder (or alias to one) whose name ends in "-!!X" will not be expanded (i.e., there will be no submenu hanging off it.) The name displayed in the menu will not have the "-!!X" suffix.
Additionally, any item ending in "^Fexpand" toggles folder expansion for all succeeding folders (sorted by name) in the current folder. For example, my System Folder has a directory called メAA^Fexpandモ inside it; this means that no folders inside it will be expanded, so I just get a birds-eye view of my System Folder. (I already have separate Control Panels and Apple Menu Items aliases.)
Note: None of these specially-named items will appear in any FinderPop menu.
・ If you have a real weird problem with FinderPop,
_________________
To Do
Balloon Help. Running compiled scripts as opposed to opening them. A half-decent, reorganised version of this メRead Meモ, with (gasp) pictures! Use Custom Icons where appropriate.
_________________
Thanks
My thanks go to the innumerable people who came up with bugs and suggestions, etc. My thanks also to the one person who sent me a postcard (you know who you are!), and to Dave from England who sent me a highly entertaining ム if a tad obscene ム animation.
Short Version History
1.4 "Click and Hold" CMM popping up. Implementation of windows and disk menus. Misc fixes.
1.3 Core engine rewrite -- build menus "on the fly" using MBDF.
1.2 Icon and Menu Caching. メContentsモ submenu. Better alias-resolution code.
1.1 Implements Finder Copying/Moving/Aliasing. Adds cursor-changing support.
1.0.1 Fixes embarrassing 'Label' menu disabling problem. Adds Option-Quit.
1.0 Basic Version, PowerMac only
_________________
Legal Niceties
(The following text shamelessly stolen from one of Peter Lewisユ programs; names have been changed to implicate the guilty. Iユll get round to doing my own real soon now.)
This program should do what is described in this document. If it doesnユt, you can simply stop using it. If you paid for the product, and within a year find that it doesnユt do what has been described here, then you can notify me ム Turlough OユConnor ム and your money will be refunded and your license cancelled.
Turlough OユConnor hereby disclaims all warranties relating to this software, whether expressed or implied, including without limitation any implied warranties of merchantability or fitness for a particular purpose. Turlough OユConnor will not be liable for any special, incidental, consequential, indirect or similar damages due to loss of data or any other reason, even if Turlough OユConnor or an agent of his has been advised of the possibility of such damages. In no event shall Turlough OユConnor be liable for any damages, regardless of the form of the claim. The person using the software bears all risk as to the quality and performance of the software.
If youユre having problems using FinderPop, contact me and I will do what I can to fix it.
<mailto: (Turlough O'Connor) turly@apple.com>
http://www.geocities.com/SiliconValley/Bay/2573/
Have Fun!
--turly
Turlough O'Connor, Apple Computer Ltd., Cork, IRELAND turly@apple.com